/*----------------------------------------------------------------------------------------
*
*  Copyright 2019, Gao Hai Hui, <fromzeropoint@126.com>.  All rights reserved.
*  https://gitee.com/helloworldghh/cat.git
*  Use of this source code is governed by a MIT license
*  that can be found in the License file.
*
----------------------------------------------------------------------------------------*/
#include "../import/head.h"
#include "../data_struct/head.h"
#include "../macro/head.h"
#include "../impl/head.h"
#include "../msg/head.h"
#include "../helper_jsp/head.h"
#include "helper_proc.h"

namespace jsp2cpp
{

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 

    helper_proc::helper_proc()
    {
    }

    helper_proc::~helper_proc()
    {
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // proc

    // 
    // 
    // 
    int helper_proc::proc( xos_box::i_msg *& pMsg )
    {
        int ret = 1;

        int nMsgType = pMsg->get_msg_type();

        switch( nMsgType )
        {
        case MSG_TYPE_FLUSH:
            {
                mgr::get()->notify()->notify_type( pMsg, MSG_TYPE_QUIT );
            }
            break;
        case MSG_TYPE_QUIT:
            {
                state::set_stopped();
            }
            break;
        case MSG_TYPE_MAIN:
            {
                helper_jsp obj;
                obj.proc( pMsg );
            }
            break;
        default:
            {
                ret = 0;
            }
            break;
        }

        xos_stl::release_interface( pMsg );

        return ret;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // proc

    int helper_proc::on_msg( xos_box::i_msg *& pMsg )
    {
        int ret = 0;
        helper_proc obj;
        obj.proc( pMsg );
        return ret;
    }

} // jsp2cpp
